<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<script>
// [leetcode]1 两数之和 
// 输入：nums = [2,7,11,15], target = 9
// 输出：[0,1]
// 解释：因为 nums[0] + nums[1] == 9 ，返回 [0, 1] 。


function sum(nums, target) {

// 时间复杂度 O(n2)
// for (var i = 0; i < nums.length; i++) {
//     for (var j = i + 1; j < nums.length; j++) {
//         if ((nums[i] + nums[j]) === target) {
//             return [i, j]
//         }
//     }
// }

// 时间复杂度 O(n2)
// for (var i = 0; i < nums.length; i++) {
//     let index = nums.indexOf(target - nums[i])
//     if (index !== -1 && index !== i) {
//         return [i, index]
//     }
// }

// 时间复杂度 O(n)
let key
let obj = {} // obj = { subtract : index }
for(var i = 0; i < nums.length; i++) {
    key = target - nums[i]
    if (obj[nums[i]] !== undefined) {
        return [obj[nums[i]], i]
    }
    obj[key] = i
}
}


</script>
</body>
</html>